// 商品分类模块：category

import { topCategory } from "@/api/constants";
import { findAllCategory } from "@/api/category";

export default {
    namespaced: true,
    state(){
        return {
            list: topCategory.map(item => {
                return { name: item };
            }) // 分类信息集合
        };
    },
    // 修改state
    mutations: {
        /**
         * 更新分类列表
         * @param state
         * @param payload
         */
        updateList(state, payload){
            state.list = payload;
        },
        // 修改当前一级分类下的open数据为true
        show(state, item){
            const category = state.list.find(category => category.id === item.id);
            category.open = true;
        },
        // 修改当前一级分类下的open数据为false
        hide(state, item){
            const category = state.list.find(category => category.id === item.id);
            category.open = false;
        }
    },
    actions: {
        /**
         * 获取商品列表
         */
        async getList({ commit }){
            // 解构是使用别名
            const { result: list } = await findAllCategory();
            // 给一级分类加上一个控制二级分类显示隐藏的数据open
            list.forEach(item => {
                item.open = false;
            });
            console.log("商品列表", list);
            commit("updateList", list);
        }
    }
};
